export default {
	data() {
		return {
			//TxVideoBoFangType:false,
			logVideoIDlist:[],// 播放记录视频ID数组
			logVideo:{},//播放记录临时对象(恢复历史播放)
			islogVideo:false,//是否有历史播放记录
			logVideoAuto:false,//是否跳到记忆播放
			logVideojindu_time:0,//历史播放的视频进度
			//onReadyPlaylog:false,//恢复记忆播放
		}
	},
	onLoad(){
		let logVideoID = this.videoitem[0].vod_id
		let logVideoIem = uni.getStorageSync('logVideoIDItem'+logVideoID)
		// 获取本地历史记录
		if (logVideoIem) {
			console.log("有历史记录")
			// 写入历史播放记录VideoItem
			this.logVideo = logVideoIem
			// 设置有历史播放记录
			this.islogVideo = true 
		}else {
			console.log("暂无历史记录")
		}
		// 获取 历史播放记录(视频id)数组,存入数组
		this.getLogVideoIDlist()
	},
	watch:{
		// 视频进度是否有变化
		jindu:function(e){
			// 如果进度不等于0，则储存视频id
			if (e != 0){
				this.Push_logVideoIDlist()
			}
		},
		// 记忆播放
		logVideoAuto:function(e){
			/* ====================
			 * = 判断是否有历史播放记录，
			 * = 并恢复播放时间，因为恢
			 * = 复指定播放时间，需要等
			 * = 播放器开始播放才可以调
			 * = 用，否则在这之前调用会
			 * = 报错。
			 * =======================
			*/
			if (e == true) {
				this.isSetVideoTime()
			}
		}
	},
	methods:{
		// 获取本地历史记录
		async getLogVideoItemPlay(){
			console.log("打印历史记录logVideoItem")
			let logVideoIem = this.logVideo
			console.log(logVideoIem)
			
			console.log("正在为你恢复记忆播放")
			// 设置 当前选中的集数
			this.curlvideoIndex = logVideoIem.videoIndex
			// 设置 当前选中的播放源
			this.curlPlayFromIndex = logVideoIem.PlayFromIndex
			// 设置 [选集] 当前scoll-view的位置
			this.scrollviewitem = 'item'+logVideoIem.videoIndex
			// 设置 [选源] 当前scoll-view的位置
			this.scrollviewYuanitem = 'item'+logVideoIem.PlayFromIndex
			
			// 获取历史播放进度
			let jinduTiem = logVideoIem.initial_time
			// 设置 历史播放的视频进度
			this.logVideojindu_time = jinduTiem
			console.log("获取历史播放进度")
			console.log(jinduTiem)
			
			
			// 获取视频的下标(选中选/历史记录)
			let Index = logVideoIem.videoIndex
			// 获取播放源的下标(选中项/历史记录)
			let FromIndex = logVideoIem.PlayFromIndex
			// 获取播放源下的视频链接
			let PlayFromVdieoUrl = this.VideoPlayFrom[FromIndex].videolist[Index].url
			// 获取播放的进度
			let jindu_time = logVideoIem.initial_time
			
			console.log("获取播放源下的视频链接")
			console.log(PlayFromVdieoUrl)
			
			// 定义入口参数 [历史播放记录]
			// 设置从指定播放时间开始，需要播放器准备完毕才行
			let options = {
				index:logVideoIem.videoIndex,
				ScViewitem:'item'+logVideoIem.videoIndex,
				url:PlayFromVdieoUrl,
				pic:logVideoIem.VideoItemData[0].vod_pic
			}
			let e = {
				title:'上次观看至' + jindu_time + '秒,正在为你续播',
				duration:1000
			}
			await this.videojiTap(options)
			await this.isUniShowToast(e)
		},
		/* ============================================= 
		 * =  设置历史播放时间，这时候播放器已经准备完毕
		 * =  才可以设置从指定播放时间开始播放，早于这之
		 * =  前，设置从指定播放时间(进度)开始播放,会报错
		 * =============================================
		 */ 
		async isSetVideoTime(){
			/* ====================
			 * = 判断是否有历史播放记录，
			 * = 并恢复播放时间，因为恢
			 * = 复指定播放时间，需要等
			 * = 播放器开始播放才可以调
			 * = 用，否则在这之前调用会
			 * = 报错。
			 * =======================
			*/
			let islogVideo = this.islogVideo
			if (islogVideo == true){
				console.log("正在恢复记忆播放视频进度")
				let jindu_Time = this.logVideojindu_time
				// 设置记忆播放进度
				await this.SetVideoTime(jindu_Time)
				
				let e = {
					title:'正在为你恢复历史播放进度',
					duration:2500
				}
				// 正在恢复进度
				await this.isUniShowToast(e)
				
			}else if (islogVideo == true) {
				console.log("无记忆播放进度||无历史记录")
			}
		},
		
		
		
		/* ===============================
		 * =       腾讯播放器相关         =
		 * = *************************** =
		 * = 设置视频播放进度，恢复记忆播放
		 * ===============================
		 */
		SetVideoTime(e){
			var videoView = this.$refs.videoView1;
			videoView.seekTo(e); //这个是int 视频进度
		},
		/* ===============================
		 * =       腾讯播放器相关         =
		 * = *************************** =
		 * = 执行更新播放进度，用于记忆播放
		 * ===============================
		 */
		VideoJindu_logUpdate(e){
			// 转为整数
			let jinduTiem = Math.floor(e.detail.currentTime)
			console.log("事件 - logUpdate")
			console.log("当前播放进度 = " + jinduTiem)
			
			let log = {
				videoIndex:this.curlvideoIndex,//当前选中的集数
				PlayFromIndex:this.curlPlayFromIndex,//当前选中的播放源
				// 选集scroll按钮的定位id
				scrollVideoItem:this.scrollviewitem,//(集数)当前scroll选中(定位)的元素id
				// 选源scroll按钮的定位id
				scrollYuanItem:this.scrollviewYuanitem,//(播放源)当前scroll选中(定位)的元素id
				initial_time:jinduTiem,//当前播放的进度
				// 先保存到这里吧
				VideoItemData:this.videoitem,//存入完整的视频信息。
			}
			
			console.log("当前历史记录")
			console.log(log)
			// 将播放记录存入本地(播放历史)
			let logVideoID = this.SetVideoID
			// 数据缓存 异步
			uni.setStorage({
			    key:'logVideoIDItem'+logVideoID,
			    data:log,
			    success() {
			        console.log('视频历史记录缓存本地成功了')
			    },
			    fail() {
			        console.log('视频历史记录缓存本地失败了')
			    }
			});
			
			//this.logVideo = log
			
			// 储存当前视频记录
			//this.Save_logVideolist(log)
			
		},
		// 储存当前视频(视频ID)记录
		Push_logVideoIDlist(){
			// 获取视频id
			let logVideoID = this.SetVideoID
			console.log("获取视频ID")
			console.log(logVideoID)
			/* 
			1. 视频id作为验证 是否存在重复数据，下面会处理
			2. 将视频ID储存到播放记录数组中
			 */
			// 将播放记录存入播放记录数组中
			this.logVideoIDlist.push(logVideoID)
			// 处理重复视频ID
			this.Save_logVideoIDlist(logVideoID)
		},
		// 保存播放记录(当前视频id),在这之前，先检查有没有重复的视频ID
		Save_logVideoIDlist(logVideoID){
			// 解决[对象/数组](播放记录)重复的问题
			const set = new Set(this.logVideoIDlist)
			// 先删除 (如果有记录，则先删除旧的记录)
			set.delete(logVideoID)
			// 再追加 
			set.add(logVideoID)
			
			// 将set对象转化为数组
			this.logVideoIDlist = Array.from(set)
			
			// 打印播放记录
			console.log("打印播放记录视频ID")
			console.log(this.logVideoIDlist)
			
			let logVideoIDList = this.logVideoIDlist
			// 数据缓存 异步
			uni.setStorage({
			    key:'logVideoIDList',
			    data:logVideoIDList,//播放记录(视频id)数组
			    success() {
			        console.log('保存播放记录(当前视频id)缓存本地成功了')
			    },
			    fail() {
			        console.log('保存播放记录(当前视频id)缓存本地失败了')
			    }
			});
		},
		// 获取 历史播放记录(视频id)数组,存入数组
		getLogVideoIDlist(){
			const value = uni.getStorageSync('logVideoIDList')
			if (value) {
				console.log("获取 历史播放记录(视频id)数组")
				this.logVideoIDlist = value
			}
		},
	},
	computed:{
		// 将播放记录(当前视频ID)数组进行反转排序
		logVideo_reverse(){
			return [...this.logVideoIDlist].reverse()
		}
	}
}